package org.spring.security.oauth2.resource.server;

import java.util.Set;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "security.oauth2.client")
public class OauthClientProperties {
	


	/**
	 * Reference to the OAuth 2.0 provider to use. May reference an element from the
	 * 'provider' property or used one of the commonly used providers (google, github,
	 * facebook, okta).
	 */
	private String provider;

	/**
	 * Client ID for the registration.
	 */
	private String clientId;

	/**
	 * Client secret of the registration.
	 */
	private String clientSecret;

	/**
	 * Client authentication method. May be left blank when using a pre-defined
	 * provider.
	 */
	private String clientAuthenticationMethod;

	/**
	 * Authorization grant type. May be left blank when using a pre-defined provider.
	 */
	private String authorizationGrantType;

	/**
	 * Redirect URI. May be left blank when using a pre-defined provider.
	 */
	private String redirectUri;

	/**
	 * Authorization scopes. May be left blank when using a pre-defined provider.
	 */
	private Set<String> scope;

	/**
	 * Client name. May be left blank when using a pre-defined provider.
	 */
	private String clientName;

	public String getProvider() {
		return this.provider;
	}

	public void setProvider(String provider) {
		this.provider = provider;
	}

	public String getClientId() {
		return this.clientId;
	}

	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public String getClientSecret() {
		return this.clientSecret;
	}

	public void setClientSecret(String clientSecret) {
		this.clientSecret = clientSecret;
	}

	public String getClientAuthenticationMethod() {
		return this.clientAuthenticationMethod;
	}

	public void setClientAuthenticationMethod(String clientAuthenticationMethod) {
		this.clientAuthenticationMethod = clientAuthenticationMethod;
	}

	public String getAuthorizationGrantType() {
		return this.authorizationGrantType;
	}

	public void setAuthorizationGrantType(String authorizationGrantType) {
		this.authorizationGrantType = authorizationGrantType;
	}

	public String getRedirectUri() {
		return this.redirectUri;
	}

	public void setRedirectUri(String redirectUri) {
		this.redirectUri = redirectUri;
	}

	@Deprecated
	public String getRedirectUriTemplate() {
		return getRedirectUri();
	}

	@Deprecated
	public void setRedirectUriTemplate(String redirectUri) {
		setRedirectUri(redirectUri);
	}

	public Set<String> getScope() {
		return this.scope;
	}

	public void setScope(Set<String> scope) {
		this.scope = scope;
	}

	public String getClientName() {
		return this.clientName;
	}

	public void setClientName(String clientName) {
		this.clientName = clientName;
	}



}
